package com.gt.web.srv.service;

import com.gt.web.api.common.R;
import com.gt.web.srv.domain.SsUser;
import com.gt.web.srv.web.api.command.WxLoginReqCommand;
import com.gt.web.srv.web.api.request.UserRequest;
import com.gt.web.srv.web.api.resource.ResponseUserVo;

/**
 * @Author jh
 * @Date 2024/5/16 21:48
 * @PackageName:com.gt.web.srv.service
 * @ClassName: IArticleService
 * @Description: TODO
 */
public interface SsUserService {

	/**
	 * 小程序code登录
	 * @param reqDto
	 * @return
	 */
	R<ResponseUserVo> login(WxLoginReqCommand reqDto);

	/**
	 * 新增或更新用户
	 * @param ssUser
	 * @return 用户信息
	 */
	boolean saveOrUpdateByUserId(UserRequest ssUser);

	/**
	 * 根据userId获取用户信息
	 * @param userId
	 * @return 用户信息
	 */
	SsUser getByUserId(Long userId);

	/**
	 * 根据openId获取用户信息
	 * @param openId 小程序openId
	 * @return 用户信息
	 */
	SsUser getByOpenId(String openId);

	/**
	 * 根据身份证获取用户信息
	 * @param peopleCard 身份证号
	 * @return 用户信息
	 */
	SsUser getByPeopleCard(String peopleCard);

	/**
	 * 更新用户微信信息
	 * @param userId 用户ID
	 * @param nickName 昵称
	 * @param avatarUrl 头像
	 * @return 是否更新成功
	 */
	boolean updateWechatInfo(Long userId, String nickName, String avatarUrl);

}